home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / intro_blas2.z / intro_blas2
Encoding:
Text File  |  2002-10-03  |  24.3 KB  |  595 lines

  1.  
  2.  
  3.  
  4. IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))                                                IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222 - Introduction to matrix-vector linear algebra subprograms
  10.  
  11. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  12.      See individual man pages for operating system and hardware availability.
  13.  
  14. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  15.      The Level 2 Basic Linear Algebra Subprograms (Level 2 BLAS) consist of
  16.      routines that perform matrix-vector operations.  These routines are
  17.      written to run optimally on all SGI systems.
  18.  
  19.      The following data types are used in these routines:
  20.  
  21.      *   Single precision: Fortran "real" data type, C/C++ "float" data type,
  22.          32-bit floating point; these routine names begin with SSSS.
  23.  
  24.      *   Single precision complex: Fortran "complex" data type, C/C++
  25.          "scsl_complex" data type (defined in <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>), C++ STL
  26.          "complex<float>" data type (defined in <<<<ccccoooommmmpppplllleeeexxxx....hhhh>), two 32-bit
  27.          floating point reals; these routine names begin with CCCC.
  28.  
  29.      *   Double precision: Fortran "double precision" data type, C/C++
  30.          "double" data type, 64-bit floating point; these routine names begin
  31.          with DDDD.
  32.  
  33.      *   Double precision complex: Fortran "double complex" data type, C/C++
  34.          "scsl_zomplex" data type (defined in <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>), C++ STL
  35.          "complex<double>" data type (defined in <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>>), two 64-bit
  36.          floating point doubles; these routine names begin with ZZZZ.
  37.  
  38.      Often little or no difference exists between these versions, other than
  39.      the data types of some inputs and outputs.  In this case, the routines
  40.      are described on the same man page, and that man page is named after the
  41.      single precision or single precision complex routine.
  42.  
  43.      NOTE: SCSL supports two different C interfaces to the BLAS:
  44.  
  45.      *   The C interface described in this man page and in individual BLAS man
  46.          pages follows the same conventions used for the C interface to the
  47.          SCSL signal processing library.
  48.  
  49.      *   SCSL also supports the C interface to the legacy BLAS set forth by
  50.          the BLAS Technical Forum.  This interface supports row-major storage
  51.          of multidimensional arrays; see IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S) for details.
  52.  
  53.      By default, the integer arguments are 4 bytes (32 bits) in size; this is
  54.      the size obtained when one links to the SCSL library with ----llllssssccccssss or
  55.      ----llllssssccccssss____mmmmpppp. Another version of SCSL is available, however, in which
  56.      integers are 8 bytes (64 bits).  This version allows the user access to
  57.      larger memory sizes and helps when porting legacy Cray codes.  It can be
  58.      loaded by using either the ----llllssssccccssss____iiii8888 or ----llllssssccccssss____iiii8888____mmmmpppp link option.  Note
  59.      that any program may use only one of the two versions; 4-byte integer and
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))                                                IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))
  71.  
  72.  
  73.  
  74.      8-byte integer library calls cannot be mixed.
  75.  
  76.      C/C++ function prototypes for Level 2 BLAS routines are provided in
  77.      <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>, when using the default 4-byte integers, and
  78.      <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>>, when using 8-byte integers. These header files define
  79.      the complex types ssssccccssssllll____ccccoooommmmpppplllleeeexxxx and ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx, which are used in the
  80.      prototypes. Alternatively, C++ programs may declare arguments using the
  81.      types ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> and ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> from the standard template
  82.      library. But if these types are used, <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>> must be included before
  83.      <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> (or <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>>). Note, though, that both complex
  84.      types are equivalent: they simply represent (real, imaginary) pairs of
  85.      floating point numbers stored contiguously in memory. With the proper
  86.      casts, you can simply pass arrays of floating point data to the routines
  87.      where complex arguments are expected.
  88.  
  89.      Casts, however, can be avoided. The header files <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> and
  90.      <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>> directly support the use of user-defined complex types
  91.      or disabling prototype checking for complex arguments completely.  By
  92.      defining the symbol SSSSCCCCSSSSLLLL____VVVVOOOOIIIIDDDD____AAAARRRRGGGGSSSS before including <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> or
  93.      <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>> all complex arguments will be prototyped as vvvvooooiiiidddd ****.  To
  94.      define the symbol SSSSCCCCSSSSLLLL____VVVVOOOOIIIIDDDD____AAAARRRRGGGGSSSS at compile time use the ----DDDD compiler
  95.      option (i.e., ----DDDDSSSSCCCCSSSSLLLL____VVVVOOOOIIIIDDDD____AAAARRRRGGGGSSSS) or use an explicit ####ddddeeeeffffiiiinnnneeee SSSSCCCCSSSSLLLL____VVVVOOOOIIIIDDDD____AAAARRRRGGGGSSSS
  96.      in the source code.  This allows the use of any complex data structure
  97.      without warnings from the compiler, provided the structure is as
  98.      described above; that is:
  99.  
  100.      1.   The real and imaginary components must be contiguous in memory.
  101.  
  102.      2.   Sequential array elements must also be contiguous in memory.
  103.  
  104.      While this allows the use of non-standard complex types without
  105.      generating compiler warnings, it has the disadvantage that the compiler
  106.      will not catch type mismatches.
  107.  
  108.      Strong type checking can be enabled employing user-defined complex types
  109.      instead of SCSL's standard complex types. To do this, define
  110.      SSSSCCCCSSSSLLLL____UUUUSSSSEEEERRRR____CCCCOOOOMMMMPPPPLLLLEEEEXXXX____TTTT====_m_y__c_o_m_p_l_e_x and SSSSCCCCSSSSLLLL____UUUUSSSSEEEERRRR____ZZZZOOOOMMMMPPPPLLLLEEEEXXXX____TTTT====_m_y__z_o_m_p_l_e_x, where
  111.      _m_y__c_o_m_p_l_e_x and _m_y__z_o_m_p_l_e_x are the names of user-defined complex types.
  112.      These complex types must be defined before including the <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  113.      (or <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>>) header file.
  114.  
  115.      Fortran 90 users on IRIX systems can perform compile-time checking of
  116.      SCSL BLAS subroutine and function calls by adding UUUUSSSSEEEE SSSSCCCCSSSSLLLL____BBBBLLLLAAAASSSS (for 4-
  117.      byte integer arguments) or UUUUSSSSEEEE SSSSCCCCSSSSLLLL____BBBBLLLLAAAASSSS____IIII8888 (for 8-byte integer
  118.      arguments) to the source code from which the BLAS calls are made.
  119.      Alternatively, the compile-time checking can be invoked without any
  120.      source code modifications by using the ----aaaauuuuttttoooo____uuuusssseeee compiler option, e.g.,
  121.  
  122.           f90 -auto_use SCSL_BLAS test.f -lscs
  123.           f90 -auto_use SCSL_BLAS_I8 -i8 test.f -lscs_i8
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))                                                IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))
  137.  
  138.  
  139.  
  140.    AAAArrrrrrrraaaayyyy SSSSttttoooorrrraaaaggggeeee
  141.      Multidimensional arrays passed as arguments to BLAS routines must be
  142.      stored in column-major order, the storage convention used in Fortran
  143.      programs. C and C++ users must explicitly store multidimensional arrays
  144.      column-by-column. One way to do this is to reverse the order of array
  145.      dimensions with respect to the Fortran declaration (e.g., xxxx((((llllddddxxxx,,,,nnnn)))) in
  146.      Fortran versus xxxx[[[[nnnn]]]][[[[llllddddxxxx]]]] in C/C++). Because of the prototypes used in
  147.      <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>, the array should be cast as a pointer to the appropriate
  148.      type when passed as an argument to a BLAS routine in order to avoid
  149.      potential compiler type mismatch errors or warning messages.
  150.  
  151.      C and C++ users who want to employ row-major storage for multidimensional
  152.      arrays when calling the BLAS routines should consult the IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S)
  153.      man page.
  154.  
  155.    IIIInnnnccccrrrreeeemmmmeeeennnntttt aaaarrrrgggguuuummmmeeeennnnttttssss
  156.      A vector's description consists of the name of the array (_x or _y)
  157.      followed by the storage spacing (increment) in the array of vector
  158.      elements (_i_n_c_x or _i_n_c_y).  The increment can be positive or negative.
  159.      When a vector _x consists of _n elements, the corresponding actual array
  160.      arguments must be of a length at least 1111++++((((nnnn----1111))))****||||iiiinnnnccccxxxx||||.  For a negative
  161.      increment, the first element of _x is assumed to be xxxx((((1111++++((((nnnn----1111))))****||||iiiinnnnccccxxxx||||)))) for
  162.      Fortran arrays, xxxx[[[[((((nnnn----1111))))****||||iiiinnnnccccxxxx||||]]]] for C/C++ arrays.
  163.  
  164.    MMMMaaaannnn ppppaaaaggggeeee nnnnaaaammmmiiiinnnngggg
  165.      The mmmmaaaannnn(1) command can find a man page online by either the single
  166.      precision, single precision complex, double precision, or double
  167.      precision complex name.
  168.  
  169.      The following table describes the naming conventions for these routines:
  170.  
  171.      -------------------------------------------------------------
  172.                                             Single        Double
  173.                  Single        Double       Precision     Precision
  174.                  Precision     Precision    Complex       Complex
  175.      -------------------------------------------------------------
  176.      form:       Sname         Dname        Cname         Zname
  177.      example:    SGEMM         DGEMM        CGEMM         ZGEMM
  178.      -------------------------------------------------------------
  179.  
  180.  
  181.    LLLLiiiisssstttt ooooffff LLLLeeeevvvveeeellll 2222 BBBBLLLLAAAASSSS rrrroooouuuuttttiiiinnnneeeessss
  182.      The following list describes these routines.  The list is in alphabetic
  183.      order, except that each _H_e_r_m_i_t_i_a_n matrix routine (any routine whose name
  184.      begins with CCCCHHHH) is grouped next to equivalent _s_y_m_m_e_t_r_i_c matrix routines
  185.      (whose names begin with SSSSSSSS or CCCCSSSS).  This is because the Hermitian
  186.      property is a type of symmetry.
  187.  
  188.      Each routine marked with an asterisk (*) is an extension to the standard
  189.      set of Level 2 BLAS routines.
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))                                                IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))
  203.  
  204.  
  205.  
  206.      *   CCCCHHHHBBBBMMMMVVVV, ZZZZHHHHBBBBMMMMVVVV:  Multiplies a complex vector by a complex Hermitian
  207.          band matrix.
  208.  
  209.               y <- alpha Ax + beta y
  210.  
  211.  
  212.      *   CCCCHHHHEEEEMMMMVVVV, ZZZZHHHHEEEEMMMMVVVV: Multiplies a complex vector by a complex Hermitian
  213.          matrix.
  214.  
  215.               y <- alpha Ax + beta y
  216.  
  217.  
  218.      *   CCCCHHHHEEEERRRR, ZZZZHHHHEEEERRRR: Performs Hermitian rank 1 update of a complex Hermitian
  219.          matrix.
  220.  
  221.                            H
  222.               A <- alpha xx  + A
  223.  
  224.  
  225.      *   CCCCHHHHEEEERRRR2222, ZZZZHHHHEEEERRRR2222: Performs Hermitian rank 2 update of a complex Hermitian
  226.          matrix.
  227.  
  228.                            H   _____   H
  229.               A <- alpha xy  + alpha yx  + A
  230.  
  231.  
  232.      *   CCCCHHHHPPPPMMMMVVVV, ZZZZHHHHPPPPMMMMVVVV: Multiplies a complex vector by a packed complex
  233.          Hermitian matrix.
  234.  
  235.               y <- alpha Ax + beta y
  236.  
  237.  
  238.      *   CCCCHHHHPPPPRRRR, ZZZZHHHHPPPPRRRR: Performs Hermitian rank 1 update of a packed complex
  239.          Hermitian matrix.
  240.  
  241.                            H
  242.               A <- alpha xx  + A
  243.  
  244.  
  245.      *   CCCCHHHHPPPPRRRR2222, ZZZZHHHHPPPPRRRR2222: Performs Hermitian rank 2 update of a packed complex
  246.          Hermitian matrix.
  247.  
  248.                            H   _____   H
  249.               A <- alpha xy  + alpha yx  + A
  250.  
  251.  
  252.      *   SSSSGGGGBBBBMMMMVVVV, DDDDGGGGBBBBMMMMVVVV, CCCCGGGGBBBBMMMMVVVV, ZZZZGGGGBBBBMMMMVVVV:  Multiplies a real or complex vector by a
  253.          real or complex general band matrix.
  254.  
  255.               y <- alpha op(A) x + beta y
  256.  
  257.               where
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))                                                IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))
  269.  
  270.  
  271.  
  272.  
  273.               op(A) = A
  274.  
  275.               or
  276.  
  277.                        T
  278.               op(A) = A
  279.  
  280.               or
  281.  
  282.                        H
  283.               op(A) = A  (CGBMV, ZGBMV only)
  284.  
  285.  
  286.      *   SSSSGGGGEEEEMMMMVVVV, DDDDGGGGEEEEMMMMVVVV, CCCCGGGGEEEEMMMMVVVV, ZZZZGGGGEEEEMMMMVVVV:  Multiplies a real or complex vector by a
  287.          real or complex general matrix.
  288.  
  289.               y <- alpha op(A) x  + beta y
  290.  
  291.               where
  292.  
  293.               op(A) = A
  294.  
  295.               or
  296.                        T
  297.               op(A) = A
  298.  
  299.               or
  300.  
  301.                        H
  302.               op(A) = A  (CGEMV, ZGEMV only)
  303.  
  304.  
  305.      *   SSSSGGGGEEEERRRR, DDDDGGGGEEEERRRR:  Performs rank 1 update of a real general matrix.
  306.  
  307.                            T
  308.               A <- alpha xy  + A
  309.  
  310.  
  311.      *   CCCCGGGGEEEERRRRCCCC, ZZZZGGGGEEEERRRRCCCC:  Performs conjugated rank 1 update of a complex general
  312.          matrix.
  313.  
  314.                            H
  315.               A <- alpha xy  + A
  316.  
  317.  
  318.      *   CCCCGGGGEEEERRRRUUUU, ZZZZGGGGEEEERRRRUUUU:  Performs unconjugated rank 1 update of a complex
  319.          general matrix.
  320.  
  321.                            T
  322.               A <- alpha xy  + A
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))                                                IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))
  335.  
  336.  
  337.  
  338.      *   SSSSGGGGEEEESSSSUUUUMMMM*, DDDDGGGGEEEESSSSUUUUMMMM*, CCCCGGGGEEEESSSSUUUUMMMM*, ZZZZGGGGEEEESSSSUUUUMMMM*:  Adds a scalar multiple of a real
  339.          or complex matrix to a scalar multiple of another real or complex
  340.          matrix.
  341.  
  342.               B <- alpha op(A) + beta B
  343.  
  344.               where
  345.  
  346.               op(A) = A
  347.  
  348.               or
  349.  
  350.                        T
  351.               op(A) = A
  352.  
  353.               or
  354.  
  355.                    H
  356.               op(A)  = A (CGESUM, ZGESUM only)
  357.  
  358.  
  359.      *   SSSSSSSSBBBBMMMMVVVV, DDDDSSSSBBBBMMMMVVVV:  Multiplies a real vector by a real symmetric band
  360.          matrix.
  361.  
  362.               y <- alpha Ax + beta y
  363.  
  364.  
  365.      *   SSSSSSSSPPPPMMMMVVVV, DDDDSSSSPPPPMMMMVVVV, CCCCSSSSPPPPMMMMVVVV****, ZZZZSSSSPPPPMMMMVVVV****:  Multiplies a real or complex vector by
  366.          a real or complex symmetric packed matrix.
  367.  
  368.               y <- alpha Ax + beta y
  369.  
  370.  
  371.      *   SSSSSSSSPPPPRRRR, DDDDSSSSPPPPRRRR, CCCCSSSSPPPPRRRR****, ZZZZSSSSPPPPRRRR****: Performs symmetric rank 1 update of a real
  372.          or complex symmetric packed matrix.
  373.  
  374.                            T
  375.               A <- alpha xx  + A
  376.  
  377.  
  378.      *   SSSSSSSSPPPPRRRR2222, DDDDSSSSPPPPRRRR2222:  Performs symmetric rank 2 update of a real symmetric
  379.          packed matrix.
  380.  
  381.                            T           T
  382.               A <- alpha xy  + alpha yx  + A
  383.  
  384.  
  385.      *   SSSSSSSSYYYYMMMMVVVV, DDDDSSSSYYYYMMMMVVVV, CCCCSSSSYYYYMMMMVVVV****, ZZZZSSSSYYYYMMMMVVVV****:  Multiplies a real or complex vector by
  386.          a real or complex symmetric matrix.
  387.  
  388.               y <- alpha Ax + beta y
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))                                                IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))
  401.  
  402.  
  403.  
  404.      *   SSSSSSSSYYYYRRRR, DDDDSSSSYYYYRRRR, CCCCSSSSYYYYRRRR*, ZZZZSSSSYYYYRRRR*:  Performs symmetric rank 1 update of a real
  405.          or complex symmetric matrix.
  406.  
  407.                            T
  408.               A <- alpha xx  + A
  409.  
  410.  
  411.      *   SSSSSSSSYYYYRRRR2222, DDDDSSSSYYYYRRRR2222:  Performs symmetric rank 2 update of a real symmetric
  412.          matrix.
  413.  
  414.                            T           T
  415.               A <- alpha xy  + alpha yx  + A
  416.  
  417.  
  418.      *   SSSSTTTTBBBBMMMMVVVV, DDDDTTTTBBBBMMMMVVVV, CCCCTTTTBBBBMMMMVVVV, ZZZZTTTTBBBBMMMMVVVV:  Multiplies a real or complex vector by a
  419.          real or complex triangular band matrix.
  420.  
  421.               x <- op(A)
  422.  
  423.               where
  424.  
  425.               op(A) = A
  426.  
  427.               or
  428.  
  429.                        T
  430.               op(A) = A
  431.  
  432.               or
  433.  
  434.                        H
  435.               op(A) = A   (CTBMV, ZTBMV only)
  436.  
  437.  
  438.      *   SSSSTTTTBBBBSSSSVVVV, DDDDTTTTBBBBSSSSVVVV, CCCCTTTTBBBBSSSSVVVV, ZZZZTTTTBBBBSSSSVVVV:  Solves a real or complex triangular band
  439.          system of equations.
  440.  
  441.  
  442.                          -1
  443.               x <- op(A)x
  444.  
  445.               where
  446.  
  447.               op(A) = A
  448.  
  449.               or
  450.  
  451.                        T
  452.               op(A) = A
  453.  
  454.               or
  455.  
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))                                                IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))
  467.  
  468.  
  469.  
  470.                        H
  471.               op(A) = A  (CTBSV, ZTBSV only)
  472.  
  473.  
  474.      *   SSSSTTTTPPPPMMMMVVVV, DDDDTTTTPPPPMMMMVVVV, CCCCTTTTPPPPMMMMVVVV, ZZZZTTTTPPPPMMMMVVVV:  Multiplies a real or complex vector by a
  475.          real or complex triangular packed matrix.
  476.  
  477.               x <- op(A)
  478.  
  479.               where
  480.  
  481.               op(A) = A
  482.  
  483.               or
  484.  
  485.                        T
  486.               op(A) = A
  487.  
  488.               or
  489.  
  490.                        H
  491.               op(A) = A  (CTPMV, ZTPMV only)
  492.  
  493.  
  494.      *   SSSSTTTTPPPPSSSSVVVV, DDDDTTTTPPPPSSSSVVVV, CCCCTTTTPPPPSSSSVVVV, ZZZZTTTTPPPPSSSSVVVV: Solves a real or complex triangular
  495.          packed system of equations.
  496.  
  497.                        -1
  498.               x <- op(A)
  499.  
  500.               where
  501.  
  502.               op(A) = A
  503.  
  504.               or
  505.  
  506.                        T
  507.               op(A) = A
  508.  
  509.               or
  510.  
  511.                        H
  512.               op(A) = A   (CTPSV. ZTPSV only)
  513.  
  514.  
  515.      *   SSSSTTTTRRRRMMMMVVVV, DDDDTTTTRRRRMMMMVVVV, CCCCTTTTRRRRMMMMVVVV, ZZZZTTTTRRRRMMMMVVVV:  Multiplies a real or complex vector by a
  516.          real or complex triangular matrix.
  517.  
  518.               x <- op(A)
  519.  
  520.               where
  521.  
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))                                                IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222((((3333SSSS))))
  533.  
  534.  
  535.  
  536.               op(A) = A
  537.  
  538.               or
  539.  
  540.                        T
  541.               op(A) = A
  542.  
  543.               or
  544.  
  545.                        H
  546.               op(A) = A  (CTRMV, ZTRMV only)
  547.  
  548.  
  549.      *   SSSSTTTTRRRRSSSSVVVV, DDDDTTTTRRRRSSSSVVVV, CCCCTTTTRRRRSSSSVVVV, ZZZZTTTTRRRRSSSSVVVV:  Solves a real or complex triangular
  550.          system of equations.
  551.  
  552.                        -1
  553.               x <- op(A)
  554.  
  555.               where
  556.  
  557.               op(A) = A
  558.  
  559.               or
  560.  
  561.                        T
  562.               op(A) = A
  563.  
  564.               or
  565.  
  566.                        H
  567.               op(A) = A   (CTRSV, ZTRSV only)
  568.  
  569.  
  570. NNNNOOOOTTTTEEEESSSS
  571.      SCSL does not currently support reshaped arrays.
  572.  
  573. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  574.      Dongarra, J., J. Du Croz, S. Hammarling, and R. Hanson, "An Extended Set
  575.      of FORTRAN Basic Linear Algebra Subprograms," _A_C_M _T_r_a_n_s_a_c_t_i_o_n_s _o_n
  576.      _M_a_t_h_e_m_a_t_i_c_a_l _S_o_f_t_w_a_r_e, Vol. 14, No. 1, March 1988, pp. 1 - 17.
  577.  
  578.      IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS1111(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS3333(3S), IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S)
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.                                                                         PPPPaaaaggggeeee 9999
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.